package com.lwy.setter2;

import java.lang.annotation.*;
import cn.hutool.core.util.StrUtil;


/**
 * 填充器元注解
 *
 * @author lwy
 */
@Target(value = ElementType.ANNOTATION_TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface StufferMeta {

    /**
     * 填充器类型
     *
     * @return 填充器类型
     */
    Class<? extends IStuffer<? extends Annotation>> beanClass() default DefaultStuffImpl.class;

    /**
     * 填充器名称
     *
     * @return 填充器名称
     */
    String beanName() default StrUtil.EMPTY;


    /**
     * 缺省填充器注解
     *
     * @author fanxianfan
     */
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.FIELD)
    @StufferMeta()
    @interface DefaultStuffer {
    }

    /**
     * 缺省填充器实现
     *
     * @author fanxianfan
     */
    class DefaultStuffImpl implements IStuffer<DefaultStuffer> {

    }
}

